/**
 * Copyright (c) 2002-2011 旭鸣信息
 * All rights reserved. 
 * File：IGoodsGroupDao.java
 * History:
 *       May 11, 2012: Initially created, liuzhi.
 */
package com.xteam.ecsystem.dao;

import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;

import com.xteam.ecsystem.base.SystemContent;
import com.xteam.ecsystem.entities.BaseGoodsGroup;
import com.xteam.ecsystem.utils.PageCenterStation;

/**
 * 商品分类数据访问接口
 * 
 * @author liuzhi
 *
 */
public interface IGoodsGroupDao {

	/**
	 * 
	 * 新增或者修改商品分类信息
	 * @author liuzhi
	 * @param obj
	 * @param id
	 * @return 返回商品分类id
	 */
	public String saveOrUpdateObject(Object obj, String id);
	
	/**
	 * 
	 * 条件查询和分页显示商品分类信息（预留）
	 * @author liuzhi
	 * @param index
	 * @param size
	 * @param bggName
	 * @return
	 */
	public String getGoodsGroupList(int pageIndex, int pageSize, String bggName);
	
	/**
	 * 
	 * 级联删除商品分类信息
	 * @author liuzhi
	 * @param ids
	 */
	public void delObject(String ids);
	
	/**
	 * 根据商品分类编号获得对应的商品分类信息
	 * @author liuzhi
	 * @param id
	 * @return
	 */
	public String getGoodsGroupInfoById(String id);
	
	/**
	 * 
	 * 根据商品分类编号修改商品分类状态
	 * 0：无效
	 * 1：有效
	 * @author liuzhi
	 * @param id
	 */
	public void updateBggStateById(String id);
	
	/**
	 * 
	 * 修改是否精品推荐
	 * 0：非精品
	 * 1：精品
	 * @author liuzhi
	 * @param id
	 */
	public void updateBggBestById(String id);
	
	/**
	 * 
	 * 修改是否新品推荐
	 * 0：非新品
	 * 1：新品
	 * @author liuzhi
	 * @param id
	 */
	public void updateBggNewById(String id);
	
	/**
	 * 
	 * 修改是否热销推荐
	 * 0：非热销
	 * 1：热销
	 * @author liuzhi
	 * @param id
	 */
	public void updateBggHotById(String id);
	
	/**
	 * 
	 * 修改是否团购推荐
	 * 0：不推荐
	 * 1：推荐
	 * @author liuzhi
	 * @param id
	 */
	public void updateBggBuyById(String id);
	
	/**
	 * 
	 * 获得商品分类JSON数组,用于构建TreeGrid
	 * @author liuzhi
	 * @param goodsGroup
	 * @param bggParent
	 * @return
	 */
	public JSONArray getGoodsGroupJsonArray(BaseGoodsGroup goodsGroup, String bggParent);
	
	/**
	 * 懒加载商品分类树
	 * @author liuzhi
	 * @param bggParent
	 * @return
	 */
	public String lazyLoadGoodsGroupTree(String bggParent);
	
	/**
	 * 获得商品类型列表，以设置商品类型（属性配置）下拉组合框
	 * @author liuzhi
	 * @return
	 */
	public String getGoodsTypeList();
	
	/**
	 * 获得商品类型属性列表，以设置类型类型（属性配置）树形选择
	 * @author liuzhi
	 * @param bgtId
	 * @return
	 */
	public String getGoodsTypeAttrList(String bgtId);
	
	/**
	 * 懒加载商品分类树形表格
	 * @author liuzhi
	 * @param bggParent
	 * @return
	 */
	public String lazyLoadGoodsGroupTreeGrid(String bggParent);
	
	/**
	 * 获取指定状态的系统内容。
	 * @author Chrise 2012-6-29
	 * @param state
	 * @param value
	 * @param text
	 * @param parent
	 * @return
	 */
	public List<Map<String, String>> getSystemContent(int state, String value, String text, String parent);
	
	/**
	 * 获取指定状态的系统内容（名称使用模糊查询）。
	 * @author Chrise 2012-6-29
	 * @param name
	 * @param state
	 * @param first
	 * @param max
	 * @return
	 */
	public PageCenterStation<SystemContent> getSystemContents(String name, int state, int first, int max);

	/**
	 * 检验类型属性是否被占用
	 * @author liuzhi Oct 17, 2013
	 * @param bgaTattris
	 * @return
	 */
	public boolean getBgaByBgaTattris(String bgaTattris);

	/**
	 * 检查该分类及其子分类下面是否有相应的商品
	 * @author liuzhi Oct 18, 2013
	 * @param bggId
	 * @return
	 */
	public boolean getBgiByBgg(String bggId);
}
